GitHub Actions の self-hosted runner における cache service v2
GitHub.com (GHEC)
GitHub.com で workflow を実行すると、GitHub Actions cache は Azure Blob Storage に保管される
GitHub-hosted runner の実体は Azure にデプロイされているため network 的に近い(たぶん)ので高速だが、self-hosted runner ではだいぶ低速になってしまう
しかし GitHub.com では cache service をカスタムする方法が公式には提供されていない
したがって storage も変更できない
ワークアラウンド
custom action
が、setup-foobar が勝手にやる依存関係やビルド成果物のキャッシュはどうにもできない
GitHub-hosted cache service にあるようなブランチ単位のアクセス制御も真面目にやるの大変そう
IAM policy で頑張ればいけるか?
S3 を cache の backend として使うアクション
custom cache service & storage
cache service
custom cache service by patching runner image
cacher service の URL ACTIONS_RESULTS_URL は、runner の image に含まれるバイナリにハードコードされている
バイナリに頑張って patch を当てている
このあたりに頑張って patch を当てて自分で image を build するのもアリかもしれない
custom http(s) proxy on self-hosted runner
storage
Azure Blob Storage っぽい URL じゃないと concurrent download してくれない
GHES
GHES では、enterprise server の管理者が Amazon S3 や Google Cloud Storage といった object storage にデータを保管するように設定できる